Flash memory (e.g., NAND flash memory) comprises grid of cells arranged in a rectangular lattice. A cell is a floating gate transistor and information in the cell is stored as charge in its floating gate. The stored charge in the floating gate determines the threshold voltage of the cell. A multi-level-cell (MLC) stores more than one bit per cell. Programming of a cell in a flash memory (e.g., NAND flash memory) is attained by Fowler-Nordhiem tunneling to reach an ideal programmed voltage. However, due to programming time constraints, some tolerance is accepted and the actual programmed voltage is allowed to be within some range of the ideal value. A cell is read using a read voltage level. Errors occur during reads because of overlaps of level distributions. If the raw bit error rate (RBER) has to be kept low, the level distributions must be narrow.
However, level distributions broaden due to capacitive coupling between neighboring cells. This phenomenon is called inter-cell-interference (ICI) caused by floating-gate to floating-gate coupling. ICI can be from mild to extreme. Due to capacitive coupling between neighboring cells of the Flash, threshold voltage of the cells is disturbed. The threshold voltage of the cell depends on the coupling with the neighboring cells and their charge. The capacitive coupling causes the level distribution for multi-level cells (MLC) to broaden, effectively increasing the RBER.
As flash memories (e.g., NAND flash memory) are read repeatedly, the threshold voltages of the ceils in the flash memories get disturbed. This disturbance caused by the read operation is also referred to as “read disturb stress” (RDS). Both erased cells (cells that are not written yet and store ‘1’ data) and the ceils that are read suffer from RDS. The direction of threshold voltage shift due to RDS is generally from lower threshold voltage level to higher threshold voltage level.
When a particular page in a block of cells of the flash memory is read, i.e. a word line coupled to the page is selected, RDS also occurs on cells coupled to the unselected word lines. RDS can cause an incorrect read of data because of shifting/disturbance of the threshold voltage levels of the cells in the block of cells of the flash memory. An incorrect read causes an increase in RBER. If RBER exceeds a certain threshold value, error correction code (ECC) results in failures. Furthermore, RDS can also cause misplacement failures in MLC. The problem of RDS is further amplified when the effects of RDS are combined with ICI in blocks of memories which are partially programmed.